package com.hghivln.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hghivln.mapper.LoginInfoMapper;
import com.hghivln.pojo.domain.LoginInfo;
import com.hghivln.pojo.dto.LoginInfoDto;
import com.hghivln.pojo.vo.AjaxResult;
import com.hghivln.service.LoginInfoService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Arrays;
import java.util.List;

@Service
public class LoginInfoServiceImpl implements LoginInfoService{

    @Autowired
    private LoginInfoMapper loginInfoMapper;

    @Override
    public AjaxResult listForPage(LoginInfoDto loginInfoDto) {
        Page<LoginInfo> page = new Page<>(loginInfoDto.getPageNum(), loginInfoDto.getPageSize());
        QueryWrapper<LoginInfo> qw = new QueryWrapper<>();
        qw.like(StringUtils.isNotBlank(loginInfoDto.getUserName()),LoginInfo.COL_USER_NAME,loginInfoDto.getUserName());
        qw.like(StringUtils.isNotBlank(loginInfoDto.getLoginAccount()),LoginInfo.COL_LOGIN_ACCOUNT,loginInfoDto.getLoginAccount());
        qw.like(StringUtils.isNotBlank(loginInfoDto.getIpAddr()),LoginInfo.COL_IP_ADDR,loginInfoDto.getIpAddr());
        qw.eq(StringUtils.isNotBlank(loginInfoDto.getLoginStatus()),LoginInfo.COL_LOGIN_STATUS,loginInfoDto.getLoginStatus());
        qw.eq(StringUtils.isNotBlank(loginInfoDto.getLoginType()),LoginInfo.COL_LOGIN_TYPE,loginInfoDto.getLoginType());

        qw.ge(loginInfoDto.getBeginTime() != null,LoginInfo.COL_LOGIN_TIME,loginInfoDto.getBeginTime());
        qw.le(loginInfoDto.getEndTime() != null,LoginInfo.COL_LOGIN_TIME,loginInfoDto.getEndTime());
        loginInfoMapper.selectPage(page,qw);
        return AjaxResult.success("查询成功",page.getRecords(),page.getTotal());
    }

    @Override
    public int deleteLoginInfoByIds(Long[] ids) {
        List<Long> list = Arrays.asList(ids);
        return loginInfoMapper.deleteBatchIds(list);
    }

    @Override
    public int clearLoginInfo() {
        return loginInfoMapper.delete(null);
    }

    @Override
    public void saveLoginInfo(LoginInfo loginInfo) {
        loginInfoMapper.insert(loginInfo);
    }
}
